package com.chsi.onjava8.stream;

import java.util.Arrays;
import java.util.function.Function;
import java.util.stream.Stream;

/**
 * @Auther shikf
 * @Date 2020-06-24 15:03
 */
class FunctionMap {
    static String[] elements = {"12", "a", "23", "45"};

    static Stream<String>
    testStream() {
        return Arrays.stream(elements);
    }

    static void test(String descr, Function<String, String> func) {
        System.out.println(" ---( " + descr + " )---");
        testStream()
                .map(func)
                .forEach(System.out::println);
    }

    public static void main(String[] args) {
        test("add brackets", s -> "[" + s + "]");
        test("Increment", s -> {
                    try {
                        return Integer.parseInt(s) + 1 + "";
                    } catch (NumberFormatException e) {
                        return s;
                    }
                }
        );
        test("Replace", s -> s.replace("2", "9"));
        test("Take last digit", s -> s.length() > 0 ?
                s.charAt(s.length() - 1) + "" : s);
    }
}